package org.eiahe.hr.attendance.service;

import org.eiahe.hr.attendance.domain.vo.EmployeeAttendanceSummaryVo;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

import java.util.List;

/**
 * 员工考勤汇总Service接口
 *
 * @author zhangnn
 */
public interface IEmployeeAttendanceSummaryService {

    /**
     * 查询员工月度考勤汇总
     * 
     * @param employeeNo 工号
     * @param year       年份
     * @param month      月份
     * @return 考勤汇总信息
     */
    EmployeeAttendanceSummaryVo getMonthlySummary(String employeeNo, Integer year, Integer month);

    /**
     * 查询员工年度考勤汇总
     * 
     * @param employeeNo 工号
     * @param year       年份
     * @return 考勤汇总信息
     */
    EmployeeAttendanceSummaryVo getAnnualSummary(String employeeNo, Integer year);

    /**
     * 查询员工考勤汇总列表(支持按年月筛选)
     * 
     * @param employeeNo 工号(可为空)
     * @param year       年份
     * @param month      月份(可为空)
     * @return 考勤汇总列表
     */
    List<EmployeeAttendanceSummaryVo> listSummary(String employeeNo, Integer year, Integer month);

    /**
     * 分页查询员工考勤汇总列表
     * 
     * @param employeeNo 工号(可为空)
     * @param year       年份
     * @param month      月份(可为空)
     * @param pageQuery  分页参数
     * @return 考勤汇总分页列表
     */
    TableDataInfo<EmployeeAttendanceSummaryVo> listSummaryPage(String employeeNo, Integer year, Integer month,
            PageQuery pageQuery);
}
